export default class EnemyMiddle{
	constructor(obj){
		this.width = 0;
		this.hegiht = 0;
		this.maxWidth = 0;
		this.maxHeight = 720;
		this.startPosition = {startY:-100}
	}

	exe(main){
		// this.create(main);
		// this.step(main);
	}

	init(){
		this.getClientRect('#enemy-middle',res=>{
			this.width = res[0].width;
			this.height = res[0].height;
			this.getClientRect('#box',res=>{
				this.maxWidth = res[0].width;		 
				this.maxHeight = res[0].height;
				let startX = Math.random()*this.maxWidth;
				// let startX = 0;
				startX = Math.min(startX,this.maxWidth-this.width);
				startX = Math.max(startX,0);
				let startY = -this.hegiht-100;
				this.startPosition = {startX,startY};
				return this; 
			});
		});
		
		// console.log(this.maxWidth);
		
	}

	create(main){
		let _self = this;
		setInterval(()=>{
			// let startX = Math.random()*_self.maxWidth;
			// startX = Math.min(startX,_self.maxWidth);
			// startX = Math.max(startX,0);
			// let startY = 0;
			// _self.startPosition = {startX,startY};
			let enemyMiddle = new EnemyMiddle();
			enemyMiddle.init();
			main.data.enemyMiddle.push(enemyMiddle);
			main.setData({
				enemyMiddle:main.data.enemyMiddle
			})
			// _self.step(main);
		}, 500);
	}

	step(main){
		let _self = this;
		setInterval(()=>{
		  main.data.enemyMiddle.map((val,index,arr)=>{  
		  	// console.log(val.startPosition.startY,_self.maxHeight) ;    
		    if(val.startPosition.startY >_self.maxHeight -200){
		      arr.splice(arr.indexOf(val), 1);
		    }else{
		      val.startPosition.startY += 10;
		    }
		   // val.startPosition.startY += 10;
		  });
		  // 
		 
		  main.setData({enemyMiddle:main.data.enemyMiddle});
		}, 40);

		// let _self = this;
		// setInterval(()=>{
		//   main.data.enemyMiddle.map((val,index,arr)=>{  
		// 	let boom =false;
		//   	main.data.bullet.map((b,i,brr)=>{
		//   		let bool = _self.isBoom(
		//   				{
		//   					x:val.startPosition.startX,
		//   					y:val.startPosition.startY
		//   				},
		//   				{
		//   					x:val.width,
		//   					y:val.height
		//   				},
		//   				{
		//   					x:b.x,
		//   					y:b.y
		//   				},
		//   				{
		//   					x:6,
		//   					y:14
		//   				}
		//   			)
		//   		if(bool){
		//   			arr.splice(arr.indexOf(val), 1);
		//   			brr.splice(brr.indexOf(b),1);
		//   			// console.log(1);
		//   			boom =true;
		//   		}
		//   	});    
		//   	if(!boom){
		//   		if(val.startPosition.startY >_self.maxHeight -200){
		//   		  arr.splice(arr.indexOf(val), 1);
		//   		}else{
		//   		  val.startPosition.startY += 10;
		//   		}
		//   	}
		//   });
		//   // console.log(main.data.enemyMiddle);
		//   main.setData({enemyMiddle:main.data.enemyMiddle});
		// }, 40);
	}

	isBoom(objP,objS,otherP,otherS){
	  // let top1 = objP.y,
	  //     bottom1 = objP.y+objS.y,
	  //     left1 = objP.x,
	  //     right1 = objS.x+objP.x;
	  // let top2 = otherP.y,
	  //     bottom2 = otherP.y+otherS.y,
	  //     left2 = otherP.x,
	  //     right2 = otherS.x+otherP.x;
	     
	  //    console.log(top1,top2)
	  // return !(top1<bottom2 || bottom1 > top2 || left1>right2 || right1<left1);
	
		// let  x1 = objP.x,
		// 	x2 = otherS.x,
		// 	w1 = objS.x ,
		// 	w2 = otherS.x,
		// 	y1 = objP.y,
		// 	y2 = otherS.y,
		// 	h1 = objS.y,
		// 	h2 = otherS.y;

	  
	 //  if (x1 >= x2 && x1 >= x2 + w2) {  
  //        return false;  
  //    } else if (x1 <= x2 && x1 + w1 <= x2) {  
  //        return false;  
  //    } else if (y1 >= y2 && y1 >= y2 + h2) {  
  //        return false;  
  //    } else if (y1 <= y2 && y1 + h1 <= y2) {  
  //        return false;  
  //    }  
  //    return true;  

	}
	getClientRect(id,cb){
	  let _self = this;
	  let query = wx.createSelectorQuery();
	  query.select(id).boundingClientRect();
	  query.exec(res=>{
	     cb && cb(res);
	  }) 
	}

}